home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / develop™ Technical Journal / develop Issue 28 code / QD3D_Listings.c.sit / QD3D Listings.c
MacBinary  |  1996-10-04  |  6.6 KB  |  [TEXT/CWIE]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Fri Oct 4 11:04:31 1996, modified Fri Oct 4 11:04:31 1996, creator 'CWIE', type ASCII, 6024 bytes "QD3D Listings.c" , at 0x1808 410 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[CWIE]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0f 51 44 33 44 20 4c | 69 73 74 69 6e 67 73 2e |..QD3D L|istings.|
|00000010| 63 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |c.......|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 17 88 00 | 00 01 9a ae 7a d7 ff ae |........|....z...|
|00000060| 7a d7 ff 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |z.......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 c5 9e 00 00 |........|........|
|00000080| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00000090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000c0| 2d 2d 2d 2d 2d 0d 2f 2f | 20 4c 69 73 74 69 6e 67 |-----.//| Listing|
|000000d0| 20 31 2e 20 43 72 65 61 | 74 69 6e 67 20 61 20 66 | 1. Crea|ting a f|
|000000e0| 6f 75 72 2d 66 61 63 65 | 64 20 70 6f 6c 79 68 65 |our-face|d polyhe|
|000000f0| 64 72 6f 6e 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |dron.//-|--------|
|00000100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 0d 54 51 33 43 |--------|--..TQ3C|
|00000140| 6f 6c 6f 72 52 47 42 09 | 09 09 09 70 6f 6c 79 68 |olorRGB.|...polyh|
|00000150| 65 64 72 6f 6e 43 6f 6c | 6f 72 3b 0d 54 51 33 50 |edronCol|or;.TQ3P|
|00000160| 6f 6c 79 68 65 64 72 6f | 6e 44 61 74 61 09 09 70 |olyhedro|nData..p|
|00000170| 6f 6c 79 68 65 64 72 6f | 6e 44 61 74 61 3b 0d 54 |olyhedro|nData;.T|
|00000180| 51 33 47 65 6f 6d 65 74 | 72 79 4f 62 6a 65 63 74 |Q3Geomet|ryObject|
|00000190| 09 09 70 6f 6c 79 68 65 | 64 72 6f 6e 3b 0d 54 51 |..polyhe|dron;.TQ|
|000001a0| 33 56 65 63 74 6f 72 33 | 44 09 09 09 09 6e 6f 72 |3Vector3|D....nor|
|000001b0| 6d 61 6c 3b 0d 0d 73 74 | 61 74 69 63 20 54 51 33 |mal;..st|atic TQ3|
|000001c0| 56 65 72 74 65 78 33 44 | 09 76 65 72 74 69 63 65 |Vertex3D|.vertice|
|000001d0| 73 5b 37 5d 20 3d 20 7b | 0d 09 7b 20 7b 20 2d 31 |s[7] = {|..{ { -1|
|000001e0| 2e 30 2c 20 20 31 2e 30 | 2c 20 20 30 2e 30 20 7d |.0, 1.0|, 0.0 }|
|000001f0| 2c 20 4e 55 4c 4c 20 7d | 2c 0d 09 7b 20 7b 20 2d |, NULL }|,..{ { -|
|00000200| 31 2e 30 2c 20 2d 31 2e | 30 2c 20 20 30 2e 30 20 |1.0, -1.|0, 0.0 |
|00000210| 7d 2c 20 4e 55 4c 4c 20 | 7d 2c 0d 09 7b 20 7b 20 |}, NULL |},..{ { |
|00000220| 20 30 2e 30 2c 20 20 31 | 2e 30 2c 20 20 31 2e 30 | 0.0, 1|.0, 1.0|
|00000230| 20 7d 2c 20 4e 55 4c 4c | 20 7d 2c 0d 09 7b 20 7b | }, NULL| },..{ {|
|00000240| 20 20 30 2e 30 2c 20 2d | 31 2e 30 2c 20 20 31 2e | 0.0, -|1.0, 1.|
|00000250| 30 20 7d 2c 20 4e 55 4c | 4c 20 7d 2c 0d 09 7b 20 |0 }, NUL|L },..{ |
|00000260| 7b 20 20 32 2e 30 2c 20 | 20 31 2e 30 2c 20 20 31 |{ 2.0, | 1.0, 1|
|00000270| 2e 30 20 7d 2c 20 4e 55 | 4c 4c 20 7d 2c 0d 09 7b |.0 }, NU|LL },..{|
|00000280| 20 7b 20 20 32 2e 30 2c | 20 2d 31 2e 30 2c 20 20 | { 2.0,| -1.0, |
|00000290| 30 2e 30 20 7d 2c 20 4e | 55 4c 4c 20 7d 2c 0d 09 |0.0 }, N|ULL },..|
|000002a0| 7b 20 7b 20 20 30 2e 30 | 2c 20 2d 31 2e 30 2c 20 |{ { 0.0|, -1.0, |
|000002b0| 20 31 2e 30 20 7d 2c 20 | 4e 55 4c 4c 20 7d 0d 7d | 1.0 }, |NULL }.}|
|000002c0| 3b 0d 54 51 33 50 6f 6c | 79 68 65 64 72 6f 6e 54 |;.TQ3Pol|yhedronT|
|000002d0| 72 69 61 6e 67 6c 65 44 | 61 74 61 09 74 72 69 61 |riangleD|ata.tria|
|000002e0| 6e 67 6c 65 73 5b 34 5d | 20 3d 20 7b 0d 09 7b 20 |ngles[4]| = {..{ |
|000002f0| 20 2f 2a 20 46 61 63 65 | 20 30 20 2a 2f 0d 09 09 | /* Face| 0 */...|
|00000300| 7b 20 30 2c 20 31 2c 20 | 32 20 7d 2c 09 09 09 09 |{ 0, 1, |2 },....|
|00000310| 09 09 09 09 09 09 09 2f | 2a 20 76 65 72 74 65 78 |......./|* vertex|
|00000320| 49 6e 64 69 63 65 73 20 | 2a 2f 0d 09 09 6b 51 33 |Indices |*/...kQ3|
|00000330| 50 6f 6c 79 68 65 64 72 | 6f 6e 45 64 67 65 30 31 |Polyhedr|onEdge01|
|00000340| 20 7c 20 6b 51 33 50 6f | 6c 79 68 65 64 72 6f 6e | | kQ3Po|lyhedron|
|00000350| 45 64 67 65 32 30 2c 09 | 2f 2a 20 65 64 67 65 46 |Edge20,.|/* edgeF|
|00000360| 6c 61 67 20 2a 2f 0d 09 | 09 4e 55 4c 4c 09 09 09 |lag */..|.NULL...|
|00000370| 09 09 09 09 09 09 09 09 | 09 2f 2a 20 74 72 69 61 |........|./* tria|
|00000380| 6e 67 6c 65 41 74 74 72 | 69 62 75 74 65 53 65 74 |ngleAttr|ibuteSet|
|00000390| 20 2a 2f 0d 09 7d 2c 0d | 09 7b 20 20 2f 2a 20 46 | */..},.|.{ /* F|
|000003a0| 61 63 65 20 31 20 2a 2f | 0d 09 09 7b 20 31 2c 20 |ace 1 */|...{ 1, |
|000003b0| 33 2c 20 32 20 7d 2c 0d | 09 09 6b 51 33 50 6f 6c |3, 2 },.|..kQ3Pol|
|000003c0| 79 68 65 64 72 6f 6e 45 | 64 67 65 30 31 20 7c 20 |yhedronE|dge01 | |
|000003d0| 6b 51 33 50 6f 6c 79 68 | 65 64 72 6f 6e 45 64 67 |kQ3Polyh|edronEdg|
|000003e0| 65 31 32 2c 0d 09 09 4e | 55 4c 4c 0d 09 7d 2c 0d |e12,...N|ULL..},.|
|000003f0| 09 7b 20 20 2f 2a 20 46 | 61 63 65 20 32 20 2a 2f |.{ /* F|ace 2 */|
|00000400| 0d 09 09 7b 20 32 2c 20 | 33 2c 20 34 20 7d 2c 0d |...{ 2, |3, 4 },.|
|00000410| 09 09 6b 51 33 50 6f 6c | 79 68 65 64 72 6f 6e 45 |..kQ3Pol|yhedronE|
|00000420| 64 67 65 41 6c 6c 2c 0d | 09 09 4e 55 4c 4c 0d 09 |dgeAll,.|..NULL..|
|00000430| 7d 2c 0d 09 7b 20 20 2f | 2a 20 46 61 63 65 20 33 |},..{ /|* Face 3|
|00000440| 20 2a 2f 0d 09 09 7b 20 | 36 2c 20 35 2c 20 34 20 | */...{ |6, 5, 4 |
|00000450| 7d 2c 0d 09 09 6b 51 33 | 50 6f 6c 79 68 65 64 72 |},...kQ3|Polyhedr|
|00000460| 6f 6e 45 64 67 65 41 6c | 6c 2c 0d 09 09 4e 55 4c |onEdgeAl|l,...NUL|
|00000470| 4c 0d 09 7d 0d 7d 3b 0d | 0d 2f 2a 20 53 65 74 20 |L..}.};.|./* Set |
|00000480| 75 70 20 76 65 72 74 69 | 63 65 73 2c 20 65 64 67 |up verti|ces, edg|
|00000490| 65 73 2c 20 61 6e 64 20 | 74 72 69 61 6e 67 75 6c |es, and |triangul|
|000004a0| 61 72 20 66 61 63 65 73 | 2e 20 2a 2f 0d 70 6f 6c |ar faces|. */.pol|
|000004b0| 79 68 65 64 72 6f 6e 44 | 61 74 61 2e 6e 75 6d 56 |yhedronD|ata.numV|
|000004c0| 65 72 74 69 63 65 73 09 | 09 3d 20 37 3b 0d 70 6f |ertices.|.= 7;.po|
|000004d0| 6c 79 68 65 64 72 6f 6e | 44 61 74 61 2e 76 65 72 |lyhedron|Data.ver|
|000004e0| 74 69 63 65 73 09 09 09 | 3d 20 76 65 72 74 69 63 |tices...|= vertic|
|000004f0| 65 73 3b 09 0d 70 6f 6c | 79 68 65 64 72 6f 6e 44 |es;..pol|yhedronD|
|00000500| 61 74 61 2e 6e 75 6d 45 | 64 67 65 73 09 09 09 3d |ata.numE|dges...=|
|00000510| 20 30 3b 0d 70 6f 6c 79 | 68 65 64 72 6f 6e 44 61 | 0;.poly|hedronDa|
|00000520| 74 61 2e 65 64 67 65 73 | 09 09 09 09 3d 20 4e 55 |ta.edges|....= NU|
|00000530| 4c 4c 3b 0d 70 6f 6c 79 | 68 65 64 72 6f 6e 44 61 |LL;.poly|hedronDa|
|00000540| 74 61 2e 6e 75 6d 54 72 | 69 61 6e 67 6c 65 73 09 |ta.numTr|iangles.|
|00000550| 3d 20 34 3b 0d 70 6f 6c | 79 68 65 64 72 6f 6e 44 |= 4;.pol|yhedronD|
|00000560| 61 74 61 2e 74 72 69 61 | 6e 67 6c 65 73 09 09 3d |ata.tria|ngles..=|
|00000570| 20 74 72 69 61 6e 67 6c | 65 73 3b 0d 0d 2f 2a 20 | triangl|es;../* |
|00000580| 49 6e 68 65 72 69 74 20 | 74 68 65 20 61 74 74 72 |Inherit |the attr|
|00000590| 69 62 75 74 65 20 73 65 | 74 20 66 72 6f 6d 20 74 |ibute se|t from t|
|000005a0| 68 65 20 63 75 72 72 65 | 6e 74 20 73 74 61 74 65 |he curre|nt state|
|000005b0| 2e 20 2a 2f 0d 70 6f 6c | 79 68 65 64 72 6f 6e 44 |. */.pol|yhedronD|
|000005c0| 61 74 61 2e 70 6f 6c 79 | 68 65 64 72 6f 6e 41 74 |ata.poly|hedronAt|
|000005d0| 74 72 69 62 75 74 65 53 | 65 74 20 3d 20 4e 55 4c |tributeS|et = NUL|
|000005e0| 4c 3b 0d 09 0d 2f 2a 20 | 50 75 74 20 61 20 6e 6f |L;.../* |Put a no|
|000005f0| 72 6d 61 6c 20 6f 6e 20 | 74 68 65 20 66 69 72 73 |rmal on |the firs|
|00000600| 74 20 76 65 72 74 65 78 | 2e 20 2a 2f 0d 51 33 56 |t vertex|. */.Q3V|
|00000610| 65 63 74 6f 72 33 44 5f | 53 65 74 28 26 6e 6f 72 |ector3D_|Set(&nor|
|00000620| 6d 61 6c 2c 20 2d 31 2c | 20 30 2c 20 31 29 3b 0d |mal, -1,| 0, 1);.|
|00000630| 51 33 56 65 63 74 6f 72 | 33 44 5f 4e 6f 72 6d 61 |Q3Vector|3D_Norma|
|00000640| 6c 69 7a 65 28 26 6e 6f | 72 6d 61 6c 2c 20 26 6e |lize(&no|rmal, &n|
|00000650| 6f 72 6d 61 6c 29 3b 0d | 76 65 72 74 69 63 65 73 |ormal);.|vertices|
|00000660| 5b 30 5d 2e 61 74 74 72 | 69 62 75 74 65 53 65 74 |[0].attr|ibuteSet|
|00000670| 20 3d 20 51 33 41 74 74 | 72 69 62 75 74 65 53 65 | = Q3Att|ributeSe|
|00000680| 74 5f 4e 65 77 28 29 3b | 0d 51 33 41 74 74 72 69 |t_New();|.Q3Attri|
|00000690| 62 75 74 65 53 65 74 5f | 41 64 64 28 76 65 72 74 |buteSet_|Add(vert|
|000006a0| 69 63 65 73 5b 30 5d 2e | 61 74 74 72 69 62 75 74 |ices[0].|attribut|
|000006b0| 65 53 65 74 2c 20 6b 51 | 33 41 74 74 72 69 62 75 |eSet, kQ|3Attribu|
|000006c0| 74 65 54 79 70 65 4e 6f | 72 6d 61 6c 2c 20 0d 09 |teTypeNo|rmal, ..|
|000006d0| 26 6e 6f 72 6d 61 6c 29 | 3b 0d 0d 2f 2a 20 53 61 |&normal)|;../* Sa|
|000006e0| 6d 65 20 6e 6f 72 6d 61 | 6c 20 6f 6e 20 74 68 65 |me norma|l on the|
|000006f0| 20 73 65 63 6f 6e 64 2e | 20 2a 2f 0d 76 65 72 74 | second.| */.vert|
|00000700| 69 63 65 73 5b 31 5d 2e | 61 74 74 72 69 62 75 74 |ices[1].|attribut|
|00000710| 65 53 65 74 20 3d 20 0d | 09 51 33 53 68 61 72 65 |eSet = .|.Q3Share|
|00000720| 64 5f 47 65 74 52 65 66 | 65 72 65 6e 63 65 28 76 |d_GetRef|erence(v|
|00000730| 65 72 74 69 63 65 73 5b | 30 5d 2e 61 74 74 72 69 |ertices[|0].attri|
|00000740| 62 75 74 65 53 65 74 29 | 3b 0d 09 0d 2f 2a 20 44 |buteSet)|;.../* D|
|00000750| 69 66 66 65 72 65 6e 74 | 20 6e 6f 72 6d 61 6c 20 |ifferent| normal |
|00000760| 6f 6e 20 74 68 65 20 74 | 68 69 72 64 2e 20 2a 2f |on the t|hird. */|
|00000770| 0d 51 33 56 65 63 74 6f | 72 33 44 5f 53 65 74 28 |.Q3Vecto|r3D_Set(|
|00000780| 26 6e 6f 72 6d 61 6c 2c | 20 2d 30 2e 35 2c 20 30 |&normal,| -0.5, 0|
|00000790| 2e 30 2c 20 31 2e 30 29 | 3b 0d 51 33 56 65 63 74 |.0, 1.0)|;.Q3Vect|
|000007a0| 6f 72 33 44 5f 4e 6f 72 | 6d 61 6c 69 7a 65 28 26 |or3D_Nor|malize(&|
|000007b0| 6e 6f 72 6d 61 6c 2c 20 | 26 6e 6f 72 6d 61 6c 29 |normal, |&normal)|
|000007c0| 3b 0d 76 65 72 74 69 63 | 65 73 5b 32 5d 2e 61 74 |;.vertic|es[2].at|
|000007d0| 74 72 69 62 75 74 65 53 | 65 74 20 3d 20 51 33 41 |tributeS|et = Q3A|
|000007e0| 74 74 72 69 62 75 74 65 | 53 65 74 5f 4e 65 77 28 |ttribute|Set_New(|
|000007f0| 29 3b 0d 51 33 41 74 74 | 72 69 62 75 74 65 53 65 |);.Q3Att|ributeSe|
|00000800| 74 5f 41 64 64 28 76 65 | 72 74 69 63 65 73 5b 32 |t_Add(ve|rtices[2|
|00000810| 5d 2e 61 74 74 72 69 62 | 75 74 65 53 65 74 2c 20 |].attrib|uteSet, |
|00000820| 6b 51 33 41 74 74 72 69 | 62 75 74 65 54 79 70 65 |kQ3Attri|buteType|
|00000830| 4e 6f 72 6d 61 6c 2c 20 | 0d 09 26 6e 6f 72 6d 61 |Normal, |..&norma|
|00000840| 6c 29 3b 0d 2f 2a 20 53 | 61 6d 65 20 6e 6f 72 6d |l);./* S|ame norm|
|00000850| 61 6c 20 6f 6e 20 74 68 | 65 20 66 6f 75 72 74 68 |al on th|e fourth|
|00000860| 2e 20 2a 2f 0d 76 65 72 | 74 69 63 65 73 5b 33 5d |. */.ver|tices[3]|
|00000870| 2e 61 74 74 72 69 62 75 | 74 65 53 65 74 20 3d 20 |.attribu|teSet = |
|00000880| 0d 09 51 33 53 68 61 72 | 65 64 5f 47 65 74 52 65 |..Q3Shar|ed_GetRe|
|00000890| 66 65 72 65 6e 63 65 28 | 76 65 72 74 69 63 65 73 |ference(|vertices|
|000008a0| 5b 32 5d 2e 61 74 74 72 | 69 62 75 74 65 53 65 74 |[2].attr|ibuteSet|
|000008b0| 29 3b 0d 0d 2f 2a 20 50 | 75 74 20 61 20 63 6f 6c |);../* P|ut a col|
|000008c0| 6f 72 20 6f 6e 20 74 68 | 65 20 74 68 69 72 64 20 |or on th|e third |
|000008d0| 74 72 69 61 6e 67 6c 65 | 2e 20 2a 2f 0d 74 72 69 |triangle|. */.tri|
|000008e0| 61 6e 67 6c 65 73 5b 33 | 5d 2e 74 72 69 61 6e 67 |angles[3|].triang|
|000008f0| 6c 65 41 74 74 72 69 62 | 75 74 65 53 65 74 20 3d |leAttrib|uteSet =|
|00000900| 20 51 33 41 74 74 72 69 | 62 75 74 65 53 65 74 5f | Q3Attri|buteSet_|
|00000910| 4e 65 77 28 29 3b 0d 51 | 33 43 6f 6c 6f 72 52 47 |New();.Q|3ColorRG|
|00000920| 42 5f 53 65 74 28 26 70 | 6f 6c 79 68 65 64 72 6f |B_Set(&p|olyhedro|
|00000930| 6e 43 6f 6c 6f 72 2c 20 | 30 2c 20 30 2c 20 31 29 |nColor, |0, 0, 1)|
|00000940| 3b 0d 51 33 41 74 74 72 | 69 62 75 74 65 53 65 74 |;.Q3Attr|ibuteSet|
|00000950| 5f 41 64 64 28 74 72 69 | 61 6e 67 6c 65 73 5b 33 |_Add(tri|angles[3|
|00000960| 5d 2e 74 72 69 61 6e 67 | 6c 65 41 74 74 72 69 62 |].triang|leAttrib|
|00000970| 75 74 65 53 65 74 2c 0d | 09 6b 51 33 41 74 74 72 |uteSet,.|.kQ3Attr|
|00000980| 69 62 75 74 65 54 79 70 | 65 44 69 66 66 75 73 65 |ibuteTyp|eDiffuse|
|00000990| 43 6f 6c 6f 72 2c 20 26 | 70 6f 6c 79 68 65 64 72 |Color, &|polyhedr|
|000009a0| 6f 6e 43 6f 6c 6f 72 29 | 3b 0d 0d 2f 2a 20 43 72 |onColor)|;../* Cr|
|000009b0| 65 61 74 65 20 74 68 65 | 20 70 6f 6c 79 68 65 64 |eate the| polyhed|
|000009c0| 72 6f 6e 20 6f 62 6a 65 | 63 74 2e 20 2a 2f 0d 70 |ron obje|ct. */.p|
|000009d0| 6f 6c 79 68 65 64 72 6f | 6e 20 3d 20 51 33 50 6f |olyhedro|n = Q3Po|
|000009e0| 6c 79 68 65 64 72 6f 6e | 5f 4e 65 77 28 26 70 6f |lyhedron|_New(&po|
|000009f0| 6c 79 68 65 64 72 6f 6e | 44 61 74 61 29 3b 0d 0d |lyhedron|Data);..|
|00000a00| 2f 2f 20 2e 2e 2e 09 2f | 2a 20 44 69 73 70 6f 73 |// ..../|* Dispos|
|00000a10| 65 20 6f 66 20 61 74 74 | 72 69 62 75 74 65 73 20 |e of att|ributes |
|00000a20| 63 72 65 61 74 65 64 20 | 61 6e 64 20 72 65 66 65 |created |and refe|
|00000a30| 72 65 6e 63 65 64 2e 20 | 2a 2f 0d 0d 0d 2f 2f 2d |renced. |*/...//-|
|00000a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a80| 2d 2d 0d 2f 2f 20 4c 69 | 73 74 69 6e 67 20 32 2e |--.// Li|sting 2.|
|00000a90| 20 55 73 69 6e 67 20 61 | 6e 20 65 64 67 65 20 6c | Using a|n edge l|
|00000aa0| 69 73 74 20 74 6f 20 73 | 70 65 63 69 66 79 20 74 |ist to s|pecify t|
|00000ab0| 68 65 20 65 64 67 65 73 | 20 6f 66 20 61 20 70 6f |he edges| of a po|
|00000ac0| 6c 79 68 65 64 72 6f 6e | 0d 2f 2f 2d 2d 2d 2d 2d |lyhedron|.//-----|
|00000ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 0d |--------|------..|
|00000b10| 70 6f 6c 79 68 65 64 72 | 6f 6e 44 61 74 61 2e 6e |polyhedr|onData.n|
|00000b20| 75 6d 45 64 67 65 73 20 | 3d 20 38 3b 0d 70 6f 6c |umEdges |= 8;.pol|
|00000b30| 79 68 65 64 72 6f 6e 44 | 61 74 61 2e 65 64 67 65 |yhedronD|ata.edge|
|00000b40| 73 20 3d 20 6d 61 6c 6c | 6f 63 28 38 20 2a 20 73 |s = mall|oc(8 * s|
|00000b50| 69 7a 65 6f 66 28 54 51 | 33 50 6f 6c 79 68 65 64 |izeof(TQ|3Polyhed|
|00000b60| 72 6f 6e 45 64 67 65 44 | 61 74 61 29 29 3b 0d 09 |ronEdgeD|ata));..|
|00000b70| 0d 70 6f 6c 79 68 65 64 | 72 6f 6e 44 61 74 61 2e |.polyhed|ronData.|
|00000b80| 65 64 67 65 73 5b 30 5d | 2e 76 65 72 74 65 78 49 |edges[0]|.vertexI|
|00000b90| 6e 64 69 63 65 73 5b 30 | 5d 09 09 3d 20 30 3b 0d |ndices[0|]..= 0;.|
|00000ba0| 70 6f 6c 79 68 65 64 72 | 6f 6e 44 61 74 61 2e 65 |polyhedr|onData.e|
|00000bb0| 64 67 65 73 5b 30 5d 2e | 76 65 72 74 65 78 49 6e |dges[0].|vertexIn|
|00000bc0| 64 69 63 65 73 5b 31 5d | 09 09 3d 20 31 3b 0d 70 |dices[1]|..= 1;.p|
|00000bd0| 6f 6c 79 68 65 64 72 6f | 6e 44 61 74 61 2e 65 64 |olyhedro|nData.ed|
|00000be0| 67 65 73 5b 30 5d 2e 74 | 72 69 61 6e 67 6c 65 49 |ges[0].t|riangleI|
|00000bf0| 6e 64 69 63 65 73 5b 30 | 5d 09 3d 20 30 3b 0d 70 |ndices[0|].= 0;.p|
|00000c00| 6f 6c 79 68 65 64 72 6f | 6e 44 61 74 61 2e 65 64 |olyhedro|nData.ed|
|00000c10| 67 65 73 5b 30 5d 2e 74 | 72 69 61 6e 67 6c 65 49 |ges[0].t|riangleI|
|00000c20| 6e 64 69 63 65 73 5b 31 | 5d 09 3d 20 6b 51 33 41 |ndices[1|].= kQ3A|
|00000c30| 72 72 61 79 49 6e 64 65 | 78 4e 55 4c 4c 3b 0d 70 |rrayInde|xNULL;.p|
|00000c40| 6f 6c 79 68 65 64 72 6f | 6e 44 61 74 61 2e 65 64 |olyhedro|nData.ed|
|00000c50| 67 65 73 5b 30 5d 2e 65 | 64 67 65 41 74 74 72 69 |ges[0].e|dgeAttri|
|00000c60| 62 75 74 65 53 65 74 09 | 09 3d 20 4e 55 4c 4c 3b |buteSet.|.= NULL;|
|00000c70| 0d 09 0d 70 6f 6c 79 68 | 65 64 72 6f 6e 44 61 74 |...polyh|edronDat|
|00000c80| 61 2e 65 64 67 65 73 5b | 31 5d 2e 76 65 72 74 65 |a.edges[|1].verte|
|00000c90| 78 49 6e 64 69 63 65 73 | 5b 30 5d 09 09 3d 20 32 |xIndices|[0]..= 2|
|00000ca0| 3b 0d 70 6f 6c 79 68 65 | 64 72 6f 6e 44 61 74 61 |;.polyhe|dronData|
|00000cb0| 2e 65 64 67 65 73 5b 31 | 5d 2e 76 65 72 74 65 78 |.edges[1|].vertex|
|00000cc0| 49 6e 64 69 63 65 73 5b | 31 5d 09 09 3d 20 30 3b |Indices[|1]..= 0;|
|00000cd0| 0d 70 6f 6c 79 68 65 64 | 72 6f 6e 44 61 74 61 2e |.polyhed|ronData.|
|00000ce0| 65 64 67 65 73 5b 31 5d | 2e 74 72 69 61 6e 67 6c |edges[1]|.triangl|
|00000cf0| 65 49 6e 64 69 63 65 73 | 5b 30 5d 09 3d 20 30 3b |eIndices|[0].= 0;|
|00000d00| 0d 70 6f 6c 79 68 65 64 | 72 6f 6e 44 61 74 61 2e |.polyhed|ronData.|
|00000d10| 65 64 67 65 73 5b 31 5d | 2e 74 72 69 61 6e 67 6c |edges[1]|.triangl|
|00000d20| 65 49 6e 64 69 63 65 73 | 5b 31 5d 09 3d 20 6b 51 |eIndices|[1].= kQ|
|00000d30| 33 41 72 72 61 79 49 6e | 64 65 78 4e 55 4c 4c 3b |3ArrayIn|dexNULL;|
|00000d40| 0d 70 6f 6c 79 68 65 64 | 72 6f 6e 44 61 74 61 2e |.polyhed|ronData.|
|00000d50| 65 64 67 65 73 5b 31 5d | 2e 65 64 67 65 41 74 74 |edges[1]|.edgeAtt|
|00000d60| 72 69 62 75 74 65 53 65 | 74 09 09 3d 20 4e 55 4c |ributeSe|t..= NUL|
|00000d70| 4c 3b 0d 0d 70 6f 6c 79 | 68 65 64 72 6f 6e 44 61 |L;..poly|hedronDa|
|00000d80| 74 61 2e 65 64 67 65 73 | 5b 32 5d 2e 76 65 72 74 |ta.edges|[2].vert|
|00000d90| 65 78 49 6e 64 69 63 65 | 73 5b 30 5d 09 09 3d 20 |exIndice|s[0]..= |
|00000da0| 31 3b 0d 70 6f 6c 79 68 | 65 64 72 6f 6e 44 61 74 |1;.polyh|edronDat|
|00000db0| 61 2e 65 64 67 65 73 5b | 32 5d 2e 76 65 72 74 65 |a.edges[|2].verte|
|00000dc0| 78 49 6e 64 69 63 65 73 | 5b 31 5d 09 09 3d 20 33 |xIndices|[1]..= 3|
|00000dd0| 3b 0d 70 6f 6c 79 68 65 | 64 72 6f 6e 44 61 74 61 |;.polyhe|dronData|
|00000de0| 2e 65 64 67 65 73 5b 32 | 5d 2e 74 72 69 61 6e 67 |.edges[2|].triang|
|00000df0| 6c 65 49 6e 64 69 63 65 | 73 5b 30 5d 09 3d 20 31 |leIndice|s[0].= 1|
|00000e00| 3b 0d 70 6f 6c 79 68 65 | 64 72 6f 6e 44 61 74 61 |;.polyhe|dronData|
|00000e10| 2e 65 64 67 65 73 5b 32 | 5d 2e 74 72 69 61 6e 67 |.edges[2|].triang|
|00000e20| 6c 65 49 6e 64 69 63 65 | 73 5b 31 5d 20 09 3d 20 |leIndice|s[1] .= |
|00000e30| 6b 51 33 41 72 72 61 79 | 49 6e 64 65 78 4e 55 4c |kQ3Array|IndexNUL|
|00000e40| 4c 3b 0d 70 6f 6c 79 68 | 65 64 72 6f 6e 44 61 74 |L;.polyh|edronDat|
|00000e50| 61 2e 65 64 67 65 73 5b | 32 5d 2e 65 64 67 65 41 |a.edges[|2].edgeA|
|00000e60| 74 74 72 69 62 75 74 65 | 53 65 74 09 09 3d 20 4e |ttribute|Set..= N|
|00000e70| 55 4c 4c 3b 0d 0d 70 6f | 6c 79 68 65 64 72 6f 6e |ULL;..po|lyhedron|
|00000e80| 44 61 74 61 2e 65 64 67 | 65 73 5b 33 5d 2e 76 65 |Data.edg|es[3].ve|
|00000e90| 72 74 65 78 49 6e 64 69 | 63 65 73 5b 30 5d 09 09 |rtexIndi|ces[0]..|
|00000ea0| 3d 20 33 3b 0d 70 6f 6c | 79 68 65 64 72 6f 6e 44 |= 3;.pol|yhedronD|
|00000eb0| 61 74 61 2e 65 64 67 65 | 73 5b 33 5d 2e 76 65 72 |ata.edge|s[3].ver|
|00000ec0| 74 65 78 49 6e 64 69 63 | 65 73 5b 31 5d 09 09 3d |texIndic|es[1]..=|
|00000ed0| 20 32 3b 0d 70 6f 6c 79 | 68 65 64 72 6f 6e 44 61 | 2;.poly|hedronDa|
|00000ee0| 74 61 2e 65 64 67 65 73 | 5b 33 5d 2e 74 72 69 61 |ta.edges|[3].tria|
|00000ef0| 6e 67 6c 65 49 6e 64 69 | 63 65 73 5b 30 5d 09 3d |ngleIndi|ces[0].=|
|00000f00| 20 31 3b 0d 70 6f 6c 79 | 68 65 64 72 6f 6e 44 61 | 1;.poly|hedronDa|
|00000f10| 74 61 2e 65 64 67 65 73 | 5b 33 5d 2e 74 72 69 61 |ta.edges|[3].tria|
|00000f20| 6e 67 6c 65 49 6e 64 69 | 63 65 73 5b 31 5d 09 3d |ngleIndi|ces[1].=|
|00000f30| 20 32 3b 0d 70 6f 6c 79 | 68 65 64 72 6f 6e 44 61 | 2;.poly|hedronDa|
|00000f40| 74 61 2e 65 64 67 65 73 | 5b 33 5d 2e 65 64 67 65 |ta.edges|[3].edge|
|00000f50| 41 74 74 72 69 62 75 74 | 65 53 65 74 09 09 3d 20 |Attribut|eSet..= |
|00000f60| 4e 55 4c 4c 3b 0d 0d 2f | 2f 2e 2e 2e 09 2f 2a 20 |NULL;../|/..../* |
|00000f70| 53 70 65 63 69 66 79 20 | 74 68 65 20 72 65 73 74 |Specify |the rest|
|00000f80| 20 6f 66 20 74 68 65 20 | 65 64 67 65 73 2e 20 2a | of the |edges. *|
|00000f90| 2f 0d 0d 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/...//--|--------|
|00000fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 4c 69 73 |--------|-.// Lis|
|00000fe0| 74 69 6e 67 20 33 2e 20 | 43 72 65 61 74 69 6e 67 |ting 3. |Creating|
|00000ff0| 20 61 20 6d 65 73 68 0d | 2f 2f 2d 2d 2d 2d 2d 2d | a mesh.|//------|
|00001000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0d 73 |--------|-----..s|
|00001040| 74 61 74 69 63 20 54 51 | 33 56 65 72 74 65 78 33 |tatic TQ|3Vertex3|
|00001050| 44 09 76 65 72 74 69 63 | 65 73 5b 37 5d 20 3d 20 |D.vertic|es[7] = |
|00001060| 7b 0d 09 7b 20 7b 20 2d | 31 2e 30 2c 20 20 31 2e |{..{ { -|1.0, 1.|
|00001070| 30 2c 20 20 30 2e 30 20 | 7d 2c 20 4e 55 4c 4c 20 |0, 0.0 |}, NULL |
|00001080| 7d 2c 0d 09 7b 20 7b 20 | 2d 31 2e 30 2c 20 2d 31 |},..{ { |-1.0, -1|
|00001090| 2e 30 2c 20 20 30 2e 30 | 20 7d 2c 20 4e 55 4c 4c |.0, 0.0| }, NULL|
|000010a0| 20 7d 2c 0d 09 7b 20 7b | 20 20 30 2e 30 2c 20 20 | },..{ {| 0.0, |
|000010b0| 31 2e 30 2c 20 20 31 2e | 30 20 7d 2c 20 4e 55 4c |1.0, 1.|0 }, NUL|
|000010c0| 4c 20 7d 2c 0d 09 7b 20 | 7b 20 20 30 2e 30 2c 20 |L },..{ |{ 0.0, |
|000010d0| 2d 31 2e 30 2c 20 20 31 | 2e 30 20 7d 2c 20 4e 55 |-1.0, 1|.0 }, NU|
|000010e0| 4c 4c 20 7d 2c 0d 09 7b | 20 7b 20 20 32 2e 30 2c |LL },..{| { 2.0,|
|000010f0| 20 20 31 2e 30 2c 20 20 | 31 2e 30 20 7d 2c 20 4e | 1.0, |1.0 }, N|
|00001100| 55 4c 4c 20 7d 2c 0d 09 | 7b 20 7b 20 20 32 2e 30 |ULL },..|{ { 2.0|
|00001110| 2c 20 2d 31 2e 30 2c 20 | 20 30 2e 30 20 7d 2c 20 |, -1.0, | 0.0 }, |
|00001120| 4e 55 4c 4c 20 7d 2c 0d | 09 7b 20 7b 20 20 30 2e |NULL },.|.{ { 0.|
|00001130| 30 2c 20 2d 31 2e 30 2c | 20 20 31 2e 30 20 7d 2c |0, -1.0,| 1.0 },|
|00001140| 20 4e 55 4c 4c 20 7d 2c | 0d 7d 3b 0d 54 51 33 4d | NULL },|.};.TQ3M|
|00001150| 65 73 68 56 65 72 74 65 | 78 09 09 09 6d 65 73 68 |eshVerte|x...mesh|
|00001160| 56 65 72 74 69 63 65 73 | 5b 37 5d 2c 20 74 6d 70 |Vertices|[7], tmp|
|00001170| 5b 34 5d 3b 0d 54 51 33 | 47 65 6f 6d 65 74 72 79 |[4];.TQ3|Geometry|
|00001180| 4f 62 6a 65 63 74 09 09 | 6d 65 73 68 3b 0d 54 51 |Object..|mesh;.TQ|
|00001190| 33 4d 65 73 68 46 61 63 | 65 09 09 09 09 66 61 63 |3MeshFac|e....fac|
|000011a0| 65 30 31 2c 20 66 61 63 | 65 32 2c 20 66 61 63 65 |e01, fac|e2, face|
|000011b0| 33 3b 0d 54 51 33 41 74 | 74 72 69 62 75 74 65 53 |3;.TQ3At|tributeS|
|000011c0| 65 74 09 09 66 61 63 65 | 41 74 74 72 69 62 75 74 |et..face|Attribut|
|000011d0| 65 73 3b 0d 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |es;.unsi|gned lon|
|000011e0| 67 09 09 09 69 3b 0d 54 | 51 33 43 6f 6c 6f 72 52 |g...i;.T|Q3ColorR|
|000011f0| 47 42 09 09 09 09 63 6f | 6c 6f 72 3b 0d 54 51 33 |GB....co|lor;.TQ3|
|00001200| 56 65 63 74 6f 72 33 44 | 09 09 09 09 6e 6f 72 6d |Vector3D|....norm|
|00001210| 61 6c 3b 0d 0d 2f 2a 20 | 41 64 64 20 6e 6f 72 6d |al;../* |Add norm|
|00001220| 61 6c 73 20 74 6f 20 73 | 6f 6d 65 20 6f 66 20 74 |als to s|ome of t|
|00001230| 68 65 20 76 65 72 74 69 | 63 65 73 2e 20 2a 2f 0d |he verti|ces. */.|
|00001240| 76 65 72 74 69 63 65 73 | 5b 30 5d 2e 61 74 74 72 |vertices|[0].attr|
|00001250| 69 62 75 74 65 53 65 74 | 20 3d 20 51 33 41 74 74 |ibuteSet| = Q3Att|
|00001260| 72 69 62 75 74 65 53 65 | 74 5f 4e 65 77 28 29 3b |ributeSe|t_New();|
|00001270| 0d 51 33 56 65 63 74 6f | 72 33 44 5f 53 65 74 28 |.Q3Vecto|r3D_Set(|
|00001280| 26 6e 6f 72 6d 61 6c 2c | 20 2d 31 2c 20 30 2c 20 |&normal,| -1, 0, |
|00001290| 31 29 3b 0d 51 33 56 65 | 63 74 6f 72 33 44 5f 4e |1);.Q3Ve|ctor3D_N|
|000012a0| 6f 72 6d 61 6c 69 7a 65 | 28 26 6e 6f 72 6d 61 6c |ormalize|(&normal|
|000012b0| 2c 20 26 6e 6f 72 6d 61 | 6c 29 3b 0d 51 33 41 74 |, &norma|l);.Q3At|
|000012c0| 74 72 69 62 75 74 65 53 | 65 74 5f 41 64 64 28 76 |tributeS|et_Add(v|
|000012d0| 65 72 74 69 63 65 73 5b | 30 5d 2e 61 74 74 72 69 |ertices[|0].attri|
|000012e0| 62 75 74 65 53 65 74 2c | 20 6b 51 33 41 74 74 72 |buteSet,| kQ3Attr|
|000012f0| 69 62 75 74 65 54 79 70 | 65 4e 6f 72 6d 61 6c 2c |ibuteTyp|eNormal,|
|00001300| 20 0d 09 26 6e 6f 72 6d | 61 6c 29 3b 0d 0d 76 65 | ..&norm|al);..ve|
|00001310| 72 74 69 63 65 73 5b 31 | 5d 2e 61 74 74 72 69 62 |rtices[1|].attrib|
|00001320| 75 74 65 53 65 74 20 3d | 0d 09 51 33 53 68 61 72 |uteSet =|..Q3Shar|
|00001330| 65 64 5f 47 65 74 52 65 | 66 65 72 65 6e 63 65 28 |ed_GetRe|ference(|
|00001340| 76 65 72 74 69 63 65 73 | 5b 30 5d 2e 61 74 74 72 |vertices|[0].attr|
|00001350| 69 62 75 74 65 53 65 74 | 29 3b 0d 0d 76 65 72 74 |ibuteSet|);..vert|
|00001360| 69 63 65 73 5b 32 5d 2e | 61 74 74 72 69 62 75 74 |ices[2].|attribut|
|00001370| 65 53 65 74 20 3d 20 51 | 33 41 74 74 72 69 62 75 |eSet = Q|3Attribu|
|00001380| 74 65 53 65 74 5f 4e 65 | 77 28 29 3b 0d 51 33 56 |teSet_Ne|w();.Q3V|
|00001390| 65 63 74 6f 72 33 44 5f | 53 65 74 28 26 6e 6f 72 |ector3D_|Set(&nor|
|000013a0| 6d 61 6c 2c 20 2d 30 2e | 35 2c 20 30 2e 30 2c 20 |mal, -0.|5, 0.0, |
|000013b0| 31 2e 30 29 3b 0d 51 33 | 56 65 63 74 6f 72 33 44 |1.0);.Q3|Vector3D|
|000013c0| 5f 4e 6f 72 6d 61 6c 69 | 7a 65 28 26 6e 6f 72 6d |_Normali|ze(&norm|
|000013d0| 61 6c 2c 20 26 6e 6f 72 | 6d 61 6c 29 3b 0d 51 33 |al, &nor|mal);.Q3|
|000013e0| 41 74 74 72 69 62 75 74 | 65 53 65 74 5f 41 64 64 |Attribut|eSet_Add|
|000013f0| 28 76 65 72 74 69 63 65 | 73 5b 32 5d 2e 61 74 74 |(vertice|s[2].att|
|00001400| 72 69 62 75 74 65 53 65 | 74 2c 20 6b 51 33 41 74 |ributeSe|t, kQ3At|
|00001410| 74 72 69 62 75 74 65 54 | 79 70 65 4e 6f 72 6d 61 |tributeT|ypeNorma|
|00001420| 6c 2c 20 0d 09 26 6e 6f | 72 6d 61 6c 29 3b 0d 0d |l, ..&no|rmal);..|
|00001430| 76 65 72 74 69 63 65 73 | 5b 33 5d 2e 61 74 74 72 |vertices|[3].attr|
|00001440| 69 62 75 74 65 53 65 74 | 20 3d 20 0d 09 51 33 53 |ibuteSet| = ..Q3S|
|00001450| 68 61 72 65 64 5f 47 65 | 74 52 65 66 65 72 65 6e |hared_Ge|tReferen|
|00001460| 63 65 28 76 65 72 74 69 | 63 65 73 5b 32 5d 2e 61 |ce(verti|ces[2].a|
|00001470| 74 74 72 69 62 75 74 65 | 53 65 74 29 3b 0d 0d 2f |ttribute|Set);../|
|00001480| 2a 20 43 72 65 61 74 65 | 20 74 68 65 20 6d 65 73 |* Create| the mes|
|00001490| 68 2e 20 2a 2f 0d 6d 65 | 73 68 20 3d 20 51 33 4d |h. */.me|sh = Q3M|
|000014a0| 65 73 68 5f 4e 65 77 28 | 29 3b 0d 0d 2f 2a 20 43 |esh_New(|);../* C|
|000014b0| 72 65 61 74 65 20 74 68 | 65 20 6d 65 73 68 20 76 |reate th|e mesh v|
|000014c0| 65 72 74 69 63 65 73 2e | 20 2a 2f 0d 66 6f 72 20 |ertices.| */.for |
|000014d0| 28 69 20 3d 20 30 3b 20 | 69 20 3c 20 37 3b 20 69 |(i = 0; |i < 7; i|
|000014e0| 2b 2b 29 20 7b 0d 09 6d | 65 73 68 56 65 72 74 69 |++) {..m|eshVerti|
|000014f0| 63 65 73 5b 69 5d 20 3d | 20 51 33 4d 65 73 68 5f |ces[i] =| Q3Mesh_|
|00001500| 56 65 72 74 65 78 4e 65 | 77 28 6d 65 73 68 2c 20 |VertexNe|w(mesh, |
|00001510| 26 76 65 72 74 69 63 65 | 73 5b 69 5d 29 3b 0d 7d |&vertice|s[i]);.}|
|00001520| 0d 0d 2f 2a 20 43 72 65 | 61 74 65 20 61 20 71 75 |../* Cre|ate a qu|
|00001530| 61 64 20 65 71 75 61 6c | 20 74 6f 20 74 68 65 20 |ad equal| to the |
|00001540| 66 69 72 73 74 20 74 77 | 6f 20 74 72 69 61 6e 67 |first tw|o triang|
|00001550| 6c 65 73 20 69 6e 20 74 | 68 65 20 70 6f 6c 79 68 |les in t|he polyh|
|00001560| 65 64 72 6f 6e 2e 20 2a | 2f 0d 74 6d 70 5b 30 5d |edron. *|/.tmp[0]|
|00001570| 20 3d 20 6d 65 73 68 56 | 65 72 74 69 63 65 73 5b | = meshV|ertices[|
|00001580| 30 5d 3b 0d 74 6d 70 5b | 31 5d 20 3d 20 6d 65 73 |0];.tmp[|1] = mes|
|00001590| 68 56 65 72 74 69 63 65 | 73 5b 31 5d 3b 0d 74 6d |hVertice|s[1];.tm|
|000015a0| 70 5b 32 5d 20 3d 20 6d | 65 73 68 56 65 72 74 69 |p[2] = m|eshVerti|
|000015b0| 63 65 73 5b 33 5d 3b 0d | 74 6d 70 5b 33 5d 20 3d |ces[3];.|tmp[3] =|
|000015c0| 20 6d 65 73 68 56 65 72 | 74 69 63 65 73 5b 32 5d | meshVer|tices[2]|
|000015d0| 3b 0d 66 61 63 65 30 31 | 20 3d 20 51 33 4d 65 73 |;.face01| = Q3Mes|
|000015e0| 68 5f 46 61 63 65 4e 65 | 77 28 6d 65 73 68 2c 20 |h_FaceNe|w(mesh, |
|000015f0| 34 2c 20 74 6d 70 2c 20 | 4e 55 4c 4c 29 3b 0d 0d |4, tmp, |NULL);..|
|00001600| 2f 2a 20 43 72 65 61 74 | 65 20 6f 74 68 65 72 20 |/* Creat|e other |
|00001610| 66 61 63 65 73 2e 20 2a | 2f 0d 74 6d 70 5b 30 5d |faces. *|/.tmp[0]|
|00001620| 20 3d 20 6d 65 73 68 56 | 65 72 74 69 63 65 73 5b | = meshV|ertices[|
|00001630| 32 5d 3b 0d 74 6d 70 5b | 31 5d 20 3d 20 6d 65 73 |2];.tmp[|1] = mes|
|00001640| 68 56 65 72 74 69 63 65 | 73 5b 33 5d 3b 0d 74 6d |hVertice|s[3];.tm|
|00001650| 70 5b 32 5d 20 3d 20 6d | 65 73 68 56 65 72 74 69 |p[2] = m|eshVerti|
|00001660| 63 65 73 5b 34 5d 3b 0d | 66 61 63 65 32 20 3d 20 |ces[4];.|face2 = |
|00001670| 51 33 4d 65 73 68 5f 46 | 61 63 65 4e 65 77 28 6d |Q3Mesh_F|aceNew(m|
|00001680| 65 73 68 2c 20 33 2c 20 | 74 6d 70 2c 20 4e 55 4c |esh, 3, |tmp, NUL|
|00001690| 4c 29 3b 0d 0d 74 6d 70 | 5b 30 5d 20 3d 20 6d 65 |L);..tmp|[0] = me|
|000016a0| 73 68 56 65 72 74 69 63 | 65 73 5b 36 5d 3b 0d 74 |shVertic|es[6];.t|
|000016b0| 6d 70 5b 31 5d 20 3d 20 | 6d 65 73 68 56 65 72 74 |mp[1] = |meshVert|
|000016c0| 69 63 65 73 5b 35 5d 3b | 0d 74 6d 70 5b 32 5d 20 |ices[5];|.tmp[2] |
|000016d0| 3d 20 6d 65 73 68 56 65 | 72 74 69 63 65 73 5b 34 |= meshVe|rtices[4|
|000016e0| 5d 3b 0d 66 61 63 65 33 | 20 3d 20 51 33 4d 65 73 |];.face3| = Q3Mes|
|000016f0| 68 5f 46 61 63 65 4e 65 | 77 28 6d 65 73 68 2c 20 |h_FaceNe|w(mesh, |
|00001700| 33 2c 20 74 6d 70 2c 20 | 4e 55 4c 4c 29 3b 0d 0d |3, tmp, |NULL);..|
|00001710| 2f 2a 20 41 64 64 20 61 | 6e 20 61 74 74 72 69 62 |/* Add a|n attrib|
|00001720| 75 74 65 20 73 65 74 20 | 74 6f 20 74 68 65 20 6c |ute set |to the l|
|00001730| 61 73 74 20 66 61 63 65 | 2e 20 2a 2f 0d 66 61 63 |ast face|. */.fac|
|00001740| 65 41 74 74 72 69 62 75 | 74 65 73 20 3d 20 51 33 |eAttribu|tes = Q3|
|00001750| 41 74 74 72 69 62 75 74 | 65 53 65 74 5f 4e 65 77 |Attribut|eSet_New|
|00001760| 28 29 3b 0d 51 33 43 6f | 6c 6f 72 52 47 42 5f 53 |();.Q3Co|lorRGB_S|
|00001770| 65 74 28 26 63 6f 6c 6f | 72 2c 20 30 2c 20 30 2c |et(&colo|r, 0, 0,|
|00001780| 20 31 29 3b 0d 51 33 41 | 74 74 72 69 62 75 74 65 | 1);.Q3A|ttribute|
|00001790| 53 65 74 5f 41 64 64 28 | 66 61 63 65 41 74 74 72 |Set_Add(|faceAttr|
|000017a0| 69 62 75 74 65 73 2c 20 | 6b 51 33 41 74 74 72 69 |ibutes, |kQ3Attri|
|000017b0| 62 75 74 65 54 79 70 65 | 44 69 66 66 75 73 65 43 |buteType|DiffuseC|
|000017c0| 6f 6c 6f 72 2c 20 26 63 | 6f 6c 6f 72 29 3b 0d 51 |olor, &c|olor);.Q|
|000017d0| 33 4d 65 73 68 5f 53 65 | 74 46 61 63 65 41 74 74 |3Mesh_Se|tFaceAtt|
|000017e0| 72 69 62 75 74 65 53 65 | 74 28 6d 65 73 68 2c 20 |ributeSe|t(mesh, |
|000017f0| 66 61 63 65 33 2c 20 66 | 61 63 65 41 74 74 72 69 |face3, f|aceAttri|
|00001800| 62 75 74 65 73 29 3b 0d | 00 00 00 00 00 00 00 00 |butes);.|........|
|00001810| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001880| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00001890| 00 00 3f ff 0e 43 6f 6e | 74 72 6f 6c 53 74 72 69 |..?..Con|trolStri|
|000018a0| 70 2e 68 74 02 00 00 00 | 54 45 58 54 4d 50 53 20 |p.ht....|TEXTMPS |
|000018b0| 0f 51 44 33 44 20 4c 69 | 73 74 69 6e 67 73 2e 63 |.QD3D Li|stings.c|
|000018c0| 02 00 00 00 54 45 58 54 | 43 57 49 45 01 02 ff ff |....TEXT|CWIE....|
|000018d0| 00 00 54 45 58 54 43 57 | 49 45 01 02 ff ff ff ff |..TEXTCW|IE......|
|000018e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000018f0| 00 00 ae 7a 8a c0 00 00 | 17 88 00 00 01 9a 00 00 |...z....|........|
|00001900| 00 00 00 00 00 00 00 00 | 00 00 18 00 00 00 3f ff |........|......?.|
|00001910| 12 43 52 4d 53 65 72 69 | 61 6c 44 65 76 69 63 65 |.CRMSeri|alDevice|
|00001920| 73 2e 68 69 02 00 00 00 | 54 45 58 54 4d 50 53 20 |s.hi....|TEXTMPS |
|00001930| 01 00 02 70 00 40 00 00 | 00 00 40 26 00 00 00 00 |...p.@..|..@&....|
|00001940| 07 5d 00 00 7e 00 00 00 | 00 00 01 8a 00 00 7e 00 |.]..~...|......~.|
|00001950| ac 21 80 c0 ac 21 80 c0 | 00 00 00 00 00 00 00 00 |.!...!..|........|
|00001960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 65 35 |........|......e5|
|00001970| 00 01 00 00 00 00 00 00 | 00 00 65 36 00 01 00 00 |........|..e6....|
|00001980| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00001990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000019a0| 00 00 00 00 00 00 00 03 | 00 04 00 40 00 04 03 53 |........|...@...S|
|000019b0| 02 63 00 40 00 04 03 53 | 02 63 ae 7a 91 bc 00 00 |.c.@...S|.c.z....|
|000019c0| 17 88 00 00 17 88 00 00 | 00 00 01 00 00 00 00 04 |........|........|
|000019d0| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|000019e0| 00 00 00 46 02 74 dd e0 | 33 c8 00 00 00 1c 00 46 |...F.t..|3......F|
|000019f0| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00001a00| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00001a10| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|00001a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+